package com.irdstudio.efp.esb.api.bean.sed.repay;

import com.fasterxml.jackson.annotation.JsonProperty;
import com.irdstudio.basic.framework.core.annotation.BeanMapKey;
import com.irdstudio.basic.framework.core.annotation.DicType;
import com.irdstudio.basic.framework.core.constant.EsbEnums;
import com.irdstudio.efp.esb.api.common.sed.SedEnum;
import org.hibernate.validator.constraints.Length;
import org.hibernate.validator.constraints.NotEmpty;

import javax.validation.constraints.Digits;
import javax.validation.constraints.NotNull;

/**
* 普税贷产品对税e贷产品的此部分代码做了复用
* 说明：为了保证功能的复用性、提升开发的工作效率，对该代码进行了复用
* 评估是否会影响线上功能：否
* 评估时间：2020/5/25
* 处理方案：保留复用
*/

/**
 * 需求编号：【2019D0519】（业务提的需求编号）
 * 问题编号：【xxxxxxx】（若不是因为修复问题而新增该类，则留空）
 * 开发人员：qiuyf
 * 创建日期：2019年5月7日 上午10:43:26
 * 功能描述：主动还款申请——结算信息数组
 */
public class ReqIntSetBean {
	
	@BeanMapKey("BlgAcctCl")
	@JsonProperty("BlgAcctCl")
	@NotNull
	@NotEmpty
	@Length(max = 3)
	@DicType(dicType = SedEnum.SettleNoType.class, method = "getValue")
	private String BlgAcctCl;	//结算账户分类

	@BeanMapKey("BlgMth")
	@JsonProperty("BlgMth")
	@NotNull
	@NotEmpty
	@Length(max = 3)
	@DicType(dicType = SedEnum.SettleMode.class, method = "getValue")
	private String BlgMth;	//结算方式

	@BeanMapKey("AcctCtgry")
	@JsonProperty("AcctCtgry")
	@NotNull
	@NotEmpty
	@Length(max = 4)
	@DicType(dicType = SedEnum.AccountType.class, method = "getValue")
	private String AcctCtgry;	//账户分类

	@BeanMapKey("AmtType")
	@JsonProperty("AmtType")
	@NotNull
	@NotEmpty
	@Length(max = 10)
	@DicType(dicType = EsbEnums.AmtType.class, method = "getValue")
	private String AmtType;	//金额类型

	@BeanMapKey("BlgAmt")
	@JsonProperty("BlgAmt")
	@NotNull
	@NotEmpty
	@Digits(integer = 14,fraction = 2,message = "BlgAmt 数字校验异常")
	private String BlgAmt;	//结算金额

	@BeanMapKey("BlgCstNo")
	@JsonProperty("BlgCstNo")
	@Length(max = 10)
	private String BlgCstNo;	//结算客户号

	@BeanMapKey("BlgAcctNo")
	@JsonProperty("BlgAcctNo")
	@NotNull
	@NotEmpty
	@Length(max = 32)
	private String BlgAcctNo;	//结算账号

	@BeanMapKey("BlgAcctProdType")
	@JsonProperty("BlgAcctProdType")
	@NotNull
	@NotEmpty
	@Length(max = 10)
	@DicType(dicType = SedEnum.SedPrdType.class, method = "getValue")
	private String BlgAcctProdType;	//结算账户产品类型

	@BeanMapKey("BlgAcctCurrCd")
	@JsonProperty("BlgAcctCurrCd")
	@NotNull
	@NotEmpty
	@Length(max = 3)
	@DicType(dicType = SedEnum.CurType.class, method = "getValue")
	private String BlgAcctCurrCd;	//结算账户币种

	@BeanMapKey("BlgAcctSrlNo")
	@JsonProperty("BlgAcctSrlNo")
	@NotNull
	@NotEmpty
	@Length(max = 8)
	private String BlgAcctSrlNo;	//结算账户序号

	@BeanMapKey("AtmLockMark")
	@JsonProperty("AtmLockMark")
	@Length(max = 1)
	@DicType(dicType = SedEnum.YesOrNo.class, method = "getValue")
	private String AtmLockMark;	//自动锁定标记

	@BeanMapKey("LoanPrtyLvl")
	@JsonProperty("LoanPrtyLvl")
	@Length(max = 5)
	private String LoanPrtyLvl;	//贷款优先级

	@BeanMapKey("BlgRto")
	@JsonProperty("BlgRto")
	@Digits(integer = 5,fraction = 2,message = "BlgRto 数字校验异常")
	private String BlgRto;	//结算权重

	@BeanMapKey("BankInsdOutSdFlg")
	@JsonProperty("BankInsdOutSdFlg")
	@Length(max = 5)
	@DicType(dicType = SedEnum.BankInsdOutSdFlg.class, method = "getValue")
	private String BankInsdOutSdFlg;	//行内外标志
	
	public String getBlgAcctCl() {
		return BlgAcctCl;
	}

	public void setBlgAcctCl(String blgAcctCl) {
		BlgAcctCl = blgAcctCl;
	}

	public String getBlgMth() {
		return BlgMth;
	}

	public void setBlgMth(String blgMth) {
		BlgMth = blgMth;
	}

	public String getAcctCtgry() {
		return AcctCtgry;
	}

	public void setAcctCtgry(String acctCtgry) {
		AcctCtgry = acctCtgry;
	}

	public String getAmtType() {
		return AmtType;
	}

	public void setAmtType(String amtType) {
		AmtType = amtType;
	}

	public String getBlgAmt() {
		return BlgAmt;
	}

	public void setBlgAmt(String blgAmt) {
		BlgAmt = blgAmt;
	}

	public String getBlgCstNo() {
		return BlgCstNo;
	}

	public void setBlgCstNo(String blgCstNo) {
		BlgCstNo = blgCstNo;
	}

	public String getBlgAcctNo() {
		return BlgAcctNo;
	}

	public void setBlgAcctNo(String blgAcctNo) {
		BlgAcctNo = blgAcctNo;
	}

	public String getBlgAcctProdType() {
		return BlgAcctProdType;
	}

	public void setBlgAcctProdType(String blgAcctProdType) {
		BlgAcctProdType = blgAcctProdType;
	}

	public String getBlgAcctCurrCd() {
		return BlgAcctCurrCd;
	}

	public void setBlgAcctCurrCd(String blgAcctCurrCd) {
		BlgAcctCurrCd = blgAcctCurrCd;
	}

	public String getBlgAcctSrlNo() {
		return BlgAcctSrlNo;
	}

	public void setBlgAcctSrlNo(String blgAcctSrlNo) {
		BlgAcctSrlNo = blgAcctSrlNo;
	}

	public String getAtmLockMark() {
		return AtmLockMark;
	}

	public void setAtmLockMark(String atmLockMark) {
		AtmLockMark = atmLockMark;
	}

	public String getLoanPrtyLvl() {
		return LoanPrtyLvl;
	}

	public void setLoanPrtyLvl(String loanPrtyLvl) {
		LoanPrtyLvl = loanPrtyLvl;
	}

	public String getBlgRto() {
		return BlgRto;
	}

	public void setBlgRto(String blgRto) {
		BlgRto = blgRto;
	}

	public String getBankInsdOutSdFlg() {
		return BankInsdOutSdFlg;
	}

	public void setBankInsdOutSdFlg(String bankInsdOutSdFlg) {
		BankInsdOutSdFlg = bankInsdOutSdFlg;
	}

}
